package com.bnz.controller;

import com.alibaba.druid.pool.DruidDataSource;
import com.bnz.entity.Student;
import com.bnz.entity.Student2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;
import javax.xml.transform.Source;
import java.sql.SQLException;

/**
 * @RestController 是@controller和@ResponseBody 的结合
 * @Controller 将当前修饰的类注入SpringBoot IOC容器，使得从该类所在的项目跑起来的过程中，这个类就被实例化。
 * @ResponseBody 以Json字符串的形式返回给客户端
 */
@RestController
@RequestMapping("controller")
//@EnableConfigurationProperties(Student.class) // 相当于是把Student放进spring容器中
public class Controller_01 {

    // 注入student
    @Autowired //从spring容器中拿
    private Student student;

    // 注入student2
    @Autowired
    private Student2 student2;

    // 注入配置文件（JdbcConfig）中的DataSource
    @Autowired
    private DruidDataSource dataSource;

    @GetMapping("hello")
    public String hello(){
        System.out.println("hello成功运行");
        return "你好";
    }

    // 测试配置文件注入信息
    @GetMapping("student")
    public Student getStudent(){
        return student;
    }

    // 测试student.yml配置文件
    @GetMapping("student2")
    public Student2 getStudent2(){
        return student2;
    }

    // 测试JdbcProperties以及其配置文件JdbcConfig
    @GetMapping("source")
    public String getSource() throws SQLException {
        return dataSource.getDriverClassName();
    }



}
